# 异常处理

# 自定义一个异常
class DivisionException(Exception):
    def __init__(self, message):
        self.message = message
    

try:
    # 将用户的输入转成int类型，可能发生异常
    value = int(input("请输入一个数字："))
    # 手动跑出异常
    if value > 10:
        raise DivisionException("只可计算10以内的除法")
    # 此处可能发生除0异常
    value = 10 / value
    # 打印结果
    print(value)
# 除0异常
except ZeroDivisionError as e:
    print("除数不能为0")
    print("原始异常信息", e)
except (RuntimeError, TypeError, NameError) as e:
    print(e)
except DivisionException as de:
    print("自定义异常信息：", de.message)
    print("-->", de)
# 其他异常
except Exception as e:
    print("出现了异常", e)
else:
    print("try中的代码执行完之后，未出现异常执行此代码")
finally:
    print("不管是否出现异常都执行")
